home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Merciful 2
/
Merciful - Disc 2.iso
/
software
/
z
/
zeus2.dms
/
zeus2.adf
/
Developers
/
Include
/
libraries
/
pipeutil.h
< prev
next >
Wrap
C/C++ Source or Header
|
1995-07-04
|
8KB
|
332 lines
#ifndef LIBRARIES_PIPEUTIL_H
#define LIBRARIES_PIPEUTIL_H
// #ifndef PLFILE_H
// #include <plfile.h>
// #endif
#ifndef PLMSG_H
#include <plmsg.h>
#endif
/**********************************************************************/
/* BAUDLIST */
/**********************************************************************/
#define BE_DOWNLOADS 0x0001
#define BE_UPLOADS 0x0002
#define BE_LOGONS 0x0004
struct BaudEntry
{
ULONG bn_BPS;
ULONG bn_CPS;
ULONG bn_Flags;
} ;
struct BaudNode
{
struct Node bn_Node;
struct BaudEntry bn_Entry;
} ;
/**********************************************************************/
/* EDITORLIST */
/**********************************************************************/
#define REMOTEONLY 0
#define LOCALONLY 1
#define REMOTE&LOCAL 2
#define EDITORSFILE "Pipeline:Config/PlMsg/Editors.Dat"
struct Editor
{
char name [EDITORNAME_LENGTH];
int lo_access;
int high_access;
int type;
int seglength;
};
struct EditorNode
{
struct Node en_Node;
struct Editor *editor;
UBYTE *seg;
struct List ScriptSegs; /* struct EdSegNode */
};
struct EdSegData
{
char esd_Name[80];
UBYTE *esd_Pointer;
} ;
struct EdSegNode
{
struct Node esn_Node;
struct EdSegData esn_Data;
} ;
/**********************************************************************/
/* EDITORLINE */
/* For Message Editor's Use */
/**********************************************************************/
#define MESSAGE_TEXT 1
#define FILE_DESCRIPTION 2
struct EditorLine
{
struct Line *le;
ULONG Flags;
/* Message Editing Stuff */
char From[36];
char To[36];
char Subject[36];
BOOL Reply;
struct FiveDFido FromAddress;
struct FiveDFido DestAddress;
ULONG MessageArea;
ULONG MsgFlags;
struct WholeMessage *ReplyMsg;
/* File Description */
char FileName[20];
ULONG AreaNumber;
char *FileDescription;
} ;
/**********************************************************************/
/* ARCHIVERS */
/**********************************************************************/
#define ARCHIVERSFILE "Pipeline:Config/Pipeline/Archivers.Dat"
struct Archiver
{
char Name[80];
char Compress[256];
char Extract[256];
char Recog[256];
} ;
struct ArchiverNode
{
struct Node an_Node;
struct Archiver an_Arc;
} ;
/**********************************************************************/
/* SCANINFO */
/* for use with InitFileScanKey & InitMsgScanKey */
/**********************************************************************/
#define SA_NATURAL 1
#define SA_ALPHA 2
#define SA_CHRONO 3
#define SA_FORWARDS 1
#define SA_BACKWARDS 2
struct ScanInfo
{
/* INITFILESCANKEY() data */
int ScanFlag; /* NATURAL/ALPHA/CHRONO */
/* INITMSGSCANKEY() data */
ULONG StartNumber; /* Message Number to start at, or 0 to start */
/* at beginning of file. */
/* GLOBAL data */
int Direction; /* FORWARDS/BACKWARDS */
int Buffer; /* 32 is a nice one... */
ULONG Area; /* File/Msg Area to Start At */
} ;
/**********************************************************************/
/* PROGRAMLOG */
/**********************************************************************/
#define PLFILE_LOG 1
#define PLMSG_LOG 2
/**********************************************************************/
/* SIG RELATED */
/**********************************************************************/
struct SigNode
{
struct Node sn_Node;
char sn_Tag[9]; /* 8 chars max! */
char sn_Desc[40];
/* Access Levels */
UWORD sn_Low;
UWORD sn_High;
struct List sn_MsgAreas;
struct List sn_FileAreas;
} ;
/* Format for Pipeline:Config/Pipeline/Sigs.cfg */
/* Format : [Header SigSavedData]->LONG FileArea... LONG FileArea... etc...
LONG -1... LONG MsgArea... LONG MsgArea... etc... LONG -1...
[Header SigSavedData] etc.. etc.. EOF
*/
struct SigSavedData
{
char ssd_Tag[9]; /* including null */
char ssd_Desc[40];
UWORD ssd_Low;
UWORD ssd_High;
} ;
#define SIGCONFIG "Pipeline:Config/Pipeline/Sigs.Cfg"
struct AreaPickNode
{
struct Node node;
ULONG number;
} ;
/**********************************************************************/
/* Address Parsing Routines */
/**********************************************************************/
struct ReadAdrNode
{
struct Node ran_Node;
struct FidoAddress *ran_Address;
} ;
#define FIDO_STANDARD_N 1
#define FIDO_STANDARD_R 2
#define FIDO_STANDARD_RN 3
/**********************************************************************/
/* Find(File|Message)FromDate Flags */
/**********************************************************************/
#define FMFD_EQUAL 0x0001
#define FMFD_LESS_THAN 0x0002
#define FMFD_MORE_THAN 0x0004
#define FMFD_MONTH 0x0008
#define FMFD_HOUR 0x0010
#define FMFD_MIN 0x0020
#define FMFD_SECONDS 0x0040
#define FMFD_DAY 0x0080
/**********************************************************************/
/* LoadMessage Flags */
/**********************************************************************/
#define LM_NOFIDOINFO 0x0001
#define LM_NEXTMSG 0x0002
#define LM_NOTEXT 0x0004
/**********************************************************************/
/* Template Definitions */
/**********************************************************************/
#define TEMPLATECONFIG "Pipeline:Config/Pipeline/Templates.Cfg"
struct TemplateData
{
LONG CallsDay;
LONG MinsCall;
LONG MinsDay;
LONG FileRatio;
LONG ByteRatio;
LONG MaxBytes;
LONG MaxFiles;
LONG FreeFiles;
LONG FreeBytes;
LONG MaxMsgs;
} ;
struct Template
{
LONG te_AccessLvl;
UBYTE te_Description[40];
struct List te_MessageAreas;
struct List te_FileAreas;
struct TemplateData te_Data;
} ;
struct TemplateNode
{
struct Node tn_Node;
struct Template tn_Template;
} ;
struct TemplateAreaNode
{
struct Node tan_Node;
ULONG tan_Low;
ULONG tan_High;
ULONG tan_Flags;
BOOL tan_FileOrMsg; /* 0 = File, 1 = Msg */
} ;
struct SaveTemplate
{
LONG st_AccessLvl;
UBYTE st_Description[40];
struct TemplateData st_Data;
ULONG st_FileAreas; /* Files saved First */
ULONG st_MsgAreas; /* and then Messages */
} ;
struct SaveAreaTemplate
{
ULONG sat_Low;
ULONG sat_High;
ULONG sat_Flags;
} ;
/**********************************************************************/
/* Config Update */
/**********************************************************************/
struct ConfigUpdate
{
/* Message Areas */
void (*FreeMsgAreaNodes)( struct List * );
void (*CloseLibraries)( void );
int (*MsgAreasLoad)( struct List * );
int (*OpenLibraries)( void );
/* File Areas */
void (*ScanFileAreas)( void );
void (*FreeAreas)( void );
/* General Configuration */
int (*LoadGeneralCfg)( struct GeneralCfg * );
/* Editors */
void (*FreeEditorNodes)( struct List * );
/* Baud Rates */
void (*FreeBaudList)( void );
/* Xpr Protocols */
void (*FreeXprNodes)( struct List * );
/* Archivers */
int (*ArchiverLoad)( void );
void (*FreeArchivers)( void );
/* Sigs */
void (*FreeSigs)( struct List * );
} ;
struct AreaAccess
{
UWORD aa_Num;
UWORD aa_Flags;
} ;
#endif /* LIBRARIES_PIPEUTIL_H */